ITP001 Axioms: ITP051^5.ax


%------------------------------------------------------------------------------
% File     : ITP051^5 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : readerMonad^2.ax [Gau20]
%          : HL4051^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   25 (   0 unt;   5 typ;   0 def)
%            Number of atoms       :  187 (  16 equ;   0 cnn)
%            Maximal formula atoms :   10 (   7 avg)
%            Number of connectives :  478 (   0   ~;   0   |;   1   &; 449   @)
%                                         (   0 <=>;  28  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   16 (  11 avg; 449 nst)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :   14 (  14   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   13 (  12 usr;   7 con; 0-4 aty)
%            Number of variables   :   87 (   1   ^  86   !;   0   ?;  87   :)
% SPC      : TH0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2EreaderMonad_2EBIND,type,
    c_2EreaderMonad_2EBIND: del > del > del > $i ).

thf(mem_c_2EreaderMonad_2EBIND,axiom,
    ! [A_27a: del,A_27b: del,A_27s: del] : ( mem @ ( c_2EreaderMonad_2EBIND @ A_27a @ A_27b @ A_27s ) @ ( arr @ ( arr @ A_27s @ A_27a ) @ ( arr @ ( arr @ A_27a @ ( arr @ A_27s @ A_27b ) ) @ ( arr @ A_27s @ A_27b ) ) ) ) ).

thf(tp_c_2EreaderMonad_2EFMAP,type,
    c_2EreaderMonad_2EFMAP: del > del > del > $i ).

thf(mem_c_2EreaderMonad_2EFMAP,axiom,
    ! [A_27a: del,A_27b: del,A_27s: del] : ( mem @ ( c_2EreaderMonad_2EFMAP @ A_27a @ A_27b @ A_27s ) @ ( arr @ ( arr @ A_27a @ A_27b ) @ ( arr @ ( arr @ A_27s @ A_27a ) @ ( arr @ A_27s @ A_27b ) ) ) ) ).

thf(tp_c_2EreaderMonad_2EJOIN,type,
    c_2EreaderMonad_2EJOIN: del > del > $i ).

thf(mem_c_2EreaderMonad_2EJOIN,axiom,
    ! [A_27a: del,A_27s: del] : ( mem @ ( c_2EreaderMonad_2EJOIN @ A_27a @ A_27s ) @ ( arr @ ( arr @ A_27s @ ( arr @ A_27s @ A_27a ) ) @ ( arr @ A_27s @ A_27a ) ) ) ).

thf(tp_c_2EreaderMonad_2EMCOMPOSE,type,
    c_2EreaderMonad_2EMCOMPOSE: del > del > del > del > $i ).

thf(mem_c_2EreaderMonad_2EMCOMPOSE,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27s: del] : ( mem @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27b @ A_27c @ A_27s ) @ ( arr @ ( arr @ A_27a @ ( arr @ A_27s @ A_27b ) ) @ ( arr @ ( arr @ A_27b @ ( arr @ A_27s @ A_27c ) ) @ ( arr @ A_27a @ ( arr @ A_27s @ A_27c ) ) ) ) ) ).

thf(tp_c_2EreaderMonad_2EUNIT,type,
    c_2EreaderMonad_2EUNIT: del > del > $i ).

thf(mem_c_2EreaderMonad_2EUNIT,axiom,
    ! [A_27a: del,A_27b: del] : ( mem @ ( c_2EreaderMonad_2EUNIT @ A_27a @ A_27b ) @ ( arr @ A_27a @ ( arr @ A_27b @ A_27a ) ) ) ).

thf(ax_thm_2EreaderMonad_2EBIND__def,axiom,
    ! [A_27a: del,A_27b: del,A_27s: del,V0M: $i] :
      ( ( mem @ V0M @ ( arr @ A_27s @ A_27a ) )
     => ! [V1f: $i] :
          ( ( mem @ V1f @ ( arr @ A_27a @ ( arr @ A_27s @ A_27b ) ) )
         => ! [V2s: $i] :
              ( ( mem @ V2s @ A_27s )
             => ( ( ap @ ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27a @ A_27b @ A_27s ) @ V0M ) @ V1f ) @ V2s )
                = ( ap @ ( ap @ V1f @ ( ap @ V0M @ V2s ) ) @ V2s ) ) ) ) ) ).

thf(ax_thm_2EreaderMonad_2EUNIT__def,axiom,
    ! [A_27a: del,A_27b: del,V0x: $i] :
      ( ( mem @ V0x @ A_27a )
     => ! [V1s: $i] :
          ( ( mem @ V1s @ A_27b )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EUNIT @ A_27a @ A_27b ) @ V0x ) @ V1s )
            = V0x ) ) ) ).

thf(ax_thm_2EreaderMonad_2EMCOMPOSE__def,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27s: del,V0f1: $i] :
      ( ( mem @ V0f1 @ ( arr @ A_27a @ ( arr @ A_27s @ A_27b ) ) )
     => ! [V1f2: $i] :
          ( ( mem @ V1f2 @ ( arr @ A_27b @ ( arr @ A_27s @ A_27c ) ) )
         => ! [V2a: $i] :
              ( ( mem @ V2a @ A_27a )
             => ( ( ap @ ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27b @ A_27c @ A_27s ) @ V0f1 ) @ V1f2 ) @ V2a )
                = ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27b @ A_27c @ A_27s ) @ ( ap @ V0f1 @ V2a ) ) @ V1f2 ) ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EBIND__UNITR,axiom,
    ! [A_27a: del,A_27b: del,V0m: $i] :
      ( ( mem @ V0m @ ( arr @ A_27a @ A_27b ) )
     => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27b @ A_27b @ A_27a ) @ V0m ) @ ( c_2EreaderMonad_2EUNIT @ A_27b @ A_27a ) )
        = V0m ) ) ).

thf(conj_thm_2EreaderMonad_2EBIND__UNITL,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0x: $i] :
      ( ( mem @ V0x @ A_27c )
     => ! [V1f: $i] :
          ( ( mem @ V1f @ ( arr @ A_27c @ ( arr @ A_27a @ A_27b ) ) )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27c @ A_27b @ A_27a ) @ ( ap @ ( c_2EreaderMonad_2EUNIT @ A_27c @ A_27a ) @ V0x ) ) @ V1f )
            = ( ap @ V1f @ V0x ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EMCOMPOSE__LEFT__ID,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0g: $i] :
      ( ( mem @ V0g @ ( arr @ A_27a @ ( arr @ A_27b @ A_27c ) ) )
     => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27a @ A_27c @ A_27b ) @ ( c_2EreaderMonad_2EUNIT @ A_27a @ A_27b ) ) @ V0g )
        = V0g ) ) ).

thf(conj_thm_2EreaderMonad_2EMCOMPOSE__RIGHT__ID,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27a @ ( arr @ A_27b @ A_27c ) ) )
     => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27c @ A_27c @ A_27b ) @ V0f ) @ ( c_2EreaderMonad_2EUNIT @ A_27c @ A_27b ) )
        = V0f ) ) ).

thf(conj_thm_2EreaderMonad_2EMCOMPOSE__ASSOC,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,A_27e: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27a @ ( arr @ A_27b @ A_27d ) ) )
     => ! [V1g: $i] :
          ( ( mem @ V1g @ ( arr @ A_27d @ ( arr @ A_27b @ A_27e ) ) )
         => ! [V2h: $i] :
              ( ( mem @ V2h @ ( arr @ A_27e @ ( arr @ A_27b @ A_27c ) ) )
             => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27d @ A_27c @ A_27b ) @ V0f ) @ ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27d @ A_27e @ A_27c @ A_27b ) @ V1g ) @ V2h ) )
                = ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27e @ A_27c @ A_27b ) @ ( ap @ ( ap @ ( c_2EreaderMonad_2EMCOMPOSE @ A_27a @ A_27d @ A_27e @ A_27b ) @ V0f ) @ V1g ) ) @ V2h ) ) ) ) ) ).

thf(ax_thm_2EreaderMonad_2EFMAP__def,axiom,
    ! [A_27a: del,A_27b: del,A_27s: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27a @ A_27b ) )
     => ! [V1M1: $i] :
          ( ( mem @ V1M1 @ ( arr @ A_27s @ A_27a ) )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27a @ A_27b @ A_27s ) @ V0f ) @ V1M1 )
            = ( ap @ ( ap @ ( c_2Ecombin_2Eo @ A_27s @ A_27b @ A_27a ) @ V0f ) @ V1M1 ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EFMAP__ID,axiom,
    ! [A_27a: del,A_27b: del,V0M: $i] :
      ( ( mem @ V0M @ ( arr @ A_27a @ A_27b ) )
     => ( ( ( ap
            @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27b @ A_27b @ A_27a )
              @ ( lam @ A_27b
                @ ^ [V1x: $i] : V1x ) )
            @ V0M )
          = V0M )
        & ( ( ap @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27b @ A_27b @ A_27a ) @ ( c_2Ecombin_2EI @ A_27b ) ) @ V0M )
          = V0M ) ) ) ).

thf(conj_thm_2EreaderMonad_2EFMAP__o,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27d @ A_27c ) )
     => ! [V1g: $i] :
          ( ( mem @ V1g @ ( arr @ A_27b @ A_27d ) )
         => ( ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27b @ A_27c @ A_27a ) @ ( ap @ ( ap @ ( c_2Ecombin_2Eo @ A_27b @ A_27c @ A_27d ) @ V0f ) @ V1g ) )
            = ( ap @ ( ap @ ( c_2Ecombin_2Eo @ ( arr @ A_27a @ A_27b ) @ ( arr @ A_27a @ A_27c ) @ ( arr @ A_27a @ A_27d ) ) @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27d @ A_27c @ A_27a ) @ V0f ) ) @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27b @ A_27d @ A_27a ) @ V1g ) ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EFMAP__BIND,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27c @ A_27b ) )
     => ! [V1M: $i] :
          ( ( mem @ V1M @ ( arr @ A_27a @ A_27c ) )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27c @ A_27b @ A_27a ) @ V0f ) @ V1M )
            = ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27c @ A_27b @ A_27a ) @ V1M ) @ ( ap @ ( ap @ ( c_2Ecombin_2Eo @ A_27c @ ( arr @ A_27a @ A_27b ) @ A_27b ) @ ( c_2EreaderMonad_2EUNIT @ A_27b @ A_27a ) ) @ V0f ) ) ) ) ) ).

thf(ax_thm_2EreaderMonad_2EJOIN__def,axiom,
    ! [A_27a: del,A_27s: del,V0MM: $i] :
      ( ( mem @ V0MM @ ( arr @ A_27s @ ( arr @ A_27s @ A_27a ) ) )
     => ! [V1s: $i] :
          ( ( mem @ V1s @ A_27s )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EJOIN @ A_27a @ A_27s ) @ V0MM ) @ V1s )
            = ( ap @ ( ap @ V0MM @ V1s ) @ V1s ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EBIND__JOIN,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0M: $i] :
      ( ( mem @ V0M @ ( arr @ A_27a @ A_27c ) )
     => ! [V1f: $i] :
          ( ( mem @ V1f @ ( arr @ A_27c @ ( arr @ A_27a @ A_27b ) ) )
         => ( ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ A_27c @ A_27b @ A_27a ) @ V0M ) @ V1f )
            = ( ap @ ( c_2EreaderMonad_2EJOIN @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2EreaderMonad_2EFMAP @ A_27c @ ( arr @ A_27a @ A_27b ) @ A_27a ) @ V1f ) @ V0M ) ) ) ) ) ).

thf(conj_thm_2EreaderMonad_2EJOIN__BIND,axiom,
    ! [A_27a: del,A_27b: del,V0M: $i] :
      ( ( mem @ V0M @ ( arr @ A_27a @ ( arr @ A_27a @ A_27b ) ) )
     => ( ( ap @ ( c_2EreaderMonad_2EJOIN @ A_27b @ A_27a ) @ V0M )
        = ( ap @ ( ap @ ( c_2EreaderMonad_2EBIND @ ( arr @ A_27a @ A_27b ) @ A_27b @ A_27a ) @ V0M ) @ ( c_2Ecombin_2EI @ ( arr @ A_27a @ A_27b ) ) ) ) ) ).

%------------------------------------------------------------------------------